package com.baitengsoft.patentapimonitor.api.service;


import com.baitengsoft.patentapimonitor.api.entity.WebUserinfoEntity;
import com.baitengsoft.patentapimonitor.api.model.*;
import com.baitengsoft.patentapimonitor.api.model.dto.WebDto;
import com.baitengsoft.patentapimonitor.api.model.dto.WebUserUpdateLoginInfo;
import com.baitengsoft.patentapimonitor.api.model.param.EditUserInfoParam;
import com.baitengsoft.patentapimonitor.api.model.param.UserInfoParam;
import com.baitengsoft.patentapimonitor.common.utils.PageResult;
import com.baitengsoft.patentapimonitor.common.utils.Res;

import java.util.List;
import java.util.Map;


/**
 * 系统用户
 *
 * @author KennyGu
 */
public interface WebUserService {

    /**
     * 根据用户名，查询系统用户
     */
    WebUserinfoEntity queryByUserName(String username);

    /**
     * 根据用户ID，查询用户
     *
     * @param userId
     * @return
     */
    WebUserinfoEntity queryObject(Long userId);

    PageResult<WebUserInfoModel> searchUserInfos(UserInfoParam param);

    Integer editUserInfo(EditUserInfoParam param, int userId);

    List<WebMenuModel> searchMenusByPlatformId(Integer platformId);

    DataRangeModel searchDrByPlatformId(Integer platformId);

    WebUserInfoViewModel searchUserInfoById(Integer id);

    Boolean checkUserName(String userName);

    Integer delUserInfoByIds(String ids, int userId);

    Integer setStatusOfUserInfo(int id, int status, int userId);

    PageResult<WebUserinfoEntity> searchUserInfo(SearchPage param);

    List<WebDto> searchUserInfoByIds(String idStr);

    Map<String, String> getMapExcel(List<WebDto> webDtos);

    Res editPassword(Integer userId, String newPwd);

    boolean updateLoginInfo( WebUserUpdateLoginInfo updateLoginInfo);


}
